package com.sky.controller.user;

import com.sky.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController("userShopController")
@RequestMapping("/user/shop")
@Api(tags = "C端-店铺相关接口")
@Slf4j
public class ShopController {
    @Autowired
    private RedisTemplate redisTemplate;
    private final  static String KEY = "SHOP_STATUS";

    /**
     * 获取店铺营业状态
     * <p>
     * 本方法通过访问Redis数据库，获取店铺当前的营业状态，并将其返回给客户端
     * 使用GetMapping注解限定HTTP的GET请求，以便客户端可以查询店铺状态
     * 使用ApiOperation注解提供API文档生成的信息，说明本接口的功能
     *
     * @return 返回一个Result对象，其中包含店铺的营业状态代码（1代表营业中，其他值代表打烊中）
     */
    @GetMapping("/status")
    @ApiOperation("查询店铺营业状态")
    public Result<Integer> getStatus() {
        // 从Redis中获取店铺营业状态
        Integer status = (Integer) redisTemplate.opsForValue().get(KEY);
        // 记录店铺当前状态的日志信息
        log.info("获取店铺状态,{}", status == 1 ? "营业中" : "打烊中");
        // 返回包含店铺状态的成功结果
        return Result.success(status);
    }


}